<template>
    <div>
        购物车
    </div>
</template>

<script>
export default {
    data() {
        return {
        }
    },
    // 组件内的守卫
    // 表示进入之前的守卫
    beforeRouteEnter(to, from, next) {
        // 该守卫内没有this, 为null,原因是由于跳转之前触发, 还没有创建组件实例
        console.log('this', this); // null
        let token = localStorage.getItem('token');
        if (token) {
            next()
        } else {
            alert('请先登录!')
            next('/login')
        }
    },
    // 路由离开前触发钩子函数
    beforeRouteLeave(to, from, next) {
        console.log('beforeRouteLeave');
        next()
        // 优点类似于卸载生命周期, 
        //可以处理副作用(清除定时器, 清除页面事件, 取消请求等等)
    },
    // 路由更新的时候触发
    beforeRouteUpdate(to, from, next) {
        // 当动态路由的参数发生改变时,触发该路由守卫钩子函数
        // 不常用
        console.log('beforeRouteUpdate');
        next()


    }

}
</script>
<style scoped></style>